<template>
	<view class="login-page">
		<!-- <button class="login-btn" @click="wxLogin">微信登录</button> -->
	</view>
</template>

<script>
	export default {
		onLoad() {
			uni.login({
				"provider": "weixin",
				"onlyAuthorize": true, // 微信登录仅请求授权认证
				success: function(event) {
					const {
						code
					} = event
					console.log(event, '这是event')
					//客户端成功获取授权临时票据（code）,向业务服务器发起登录请求。
					uni.request({
						url: 'https://www.example.com/loginByWeixin', //仅为示例，并非真实接口地址。
						data: {
							code: event.code
						},
						success: (res) => {
							//获得token完成登录
							uni.setStorageSync('token', res.token)
						}
					});
				},
				fail: function(err) {
					// 登录授权失败
					// err.code是错误码
				}
			})

		},
		methods: {
			wxLogin() {
				// 1. 检查登录状态
				uni.checkSession({
					success: () => {
						// 会话未过期，直接获取用户信息
						this.getUserInfo();
					},
					fail: () => {
						// 会话已过期，重新登录
						this.doLogin();
					}
				});
			},

			doLogin() {
				// 2. 调用 uni.login 获取 code
				uni.login({
					provider: 'weixin',
					success: (loginRes) => {
						console.log('获取code成功:', loginRes.code);
						// 3. 将 code 发送到服务器换取 token
						this.getTokenFromServer(loginRes.code);
					},
					fail: (err) => {
						console.error('登录失败:', err);
						uni.showToast({
							title: '登录失败，请重试',
							icon: 'none'
						});
					}
				});
			},

			getTokenFromServer(code) {
				// 4. 调用后端接口，传递 code
				uni.request({
					url: 'https://your-api.com/api/login',
					method: 'POST',
					data: {
						code: code
					},
					success: (res) => {
						if (res.data.code === 200) {
							// 5. 存储 token 到本地
							uni.setStorageSync('token', res.data.data.token);
							uni.showToast({
								title: '登录成功',
								icon: 'success'
							});
							// 6. 跳转到首页或其他页面
							uni.switchTab({
								url: '/pages/index/index'
							});
						} else {
							uni.showToast({
								title: res.data.message || '登录失败',
								icon: 'none'
							});
						}
					},
					fail: (err) => {
						console.error('获取token失败:', err);
						uni.showToast({
							title: '网络错误，请重试',
							icon: 'none'
						});
					}
				});
			},

			getUserInfo() {
				// 获取用户信息（可选）
				uni.getUserInfo({
					provider: 'weixin',
					success: (infoRes) => {
						console.log('用户信息:', infoRes.userInfo);
						// 可以将用户信息发送到服务器保存
					}
				});
			}
		}
	}
</script>